<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.js" type="application/javascript"></script>
</head>
<body>
  
    <div id="app">
            <div> a is : {{ a }} </div> 
            <div> dba is : {{ dba }} </div> 
            <div> doubleA is : {{  doubleA() }} </div>
            <hr />
            <div> b is: {{ b }} </div>
            <div> dbb is: {{ dbb}} </div>

            <button @click="a++"> a 递增 </button>
            <button @click="b++"> b递增 </button>
            <button @click="dbb=dbb+100"> dbb+100 </button>
            <button @click="fn1"> 我是按钮 </button>

            <p>{{ c }}</p>
            <p>{{ cb() }}</p>
            <p>{{ qb }}</p>
            <button @click="c++">我是计算属性 {{ c }}</button>

    </div>

        
    
    <script>
       

       // 

        const app = new Vue({
            el: '#app',
            data:{
                a:1,
                b:2,
                c:10
            },
            methods:{
                fn1(){
                    console.log('fn1')
                },
                doubleA(){
                    // 如果我们是在 模板当中调用这个方法 那么只有任意状态的修改引起视图的更新都会重新触发
                    // 模板里面的 这个函数的执行
                    // console.log('methods里面的  doubleA')
                    return this.a * 2
                },
                cb(){
                    console.log('methods里面的  cb 使用了状态')
                    // this.c = this.c * 2
                    return this.c *2
                }
            },
            // compute 计算  computed 经过了计算了的
            // 计算属性
            computed:{
                dba(){
                    // 计算属性是有缓存的 只有在函数内使用到状态(data)发生变化时才会重新计算
                    // console.log('计算属性的dba')
                    return this.a * 2
                },
                dbb:{
                    // 取值函数
                    get(){
                        return this.b*2
                    },
                    // 储值/设值函数
                    set(val){
                        console.log('要修改dbb',val)
                    }
                },
                qb(){
                    console.log('methods里面的  cb 使用了状态，computed重新计算了')
                    return this.c*3
                }
            }

        })

        console.log('app',app)



    </script>

</body>
</html>